﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ModeloMagiPack.Entidades;
using DALMagiPack.Funcionalidad;

namespace BLLMagiPack.Managers
{
    public class BLLChequeMovimiento: BLLMagiPack
    {
        public void Asignar(int idMovimiento, int idCheque)
        {
            ChequeMovimiento asignacion = new ChequeMovimiento() { IdMovimiento = idMovimiento, IdCheque = idCheque };

            DALMagiPack<ChequeMovimiento> dal = new DALMagiPack<ChequeMovimiento>();
            dal.Insertar(asignacion);
        }

        public bool Existe(int idMovimiento, int idCheque)
        {
            ChequeMovimiento asignacion = new ChequeMovimiento() { IdMovimiento = idMovimiento, IdCheque = idCheque };
            List<Filtro> opciones = new List<Filtro>() { new Filtro() { Columna = NombresColumnas.IdMovimiento, Tipo = TipoFiltro.Equal }, 
                                    new Filtro() { Columna = NombresColumnas.IdCheque, Tipo = TipoFiltro.Equal } };

            DALMagiPack<ChequeMovimiento> dal = new DALMagiPack<ChequeMovimiento>();
            return dal.Contar(asignacion, opciones) > 0;
        }

        public List<ChequeMovimiento> TraerAsignaciones(int? idMovimiento, int? idCheque)
        {
            ChequeMovimiento asignacion = new ChequeMovimiento();
            List<Filtro> opciones = new List<Filtro>();

            if (idMovimiento != null)
            {
                asignacion.IdMovimiento = (int) idMovimiento;
                opciones.Add(new Filtro() { Columna = NombresColumnas.IdMovimiento, Tipo = TipoFiltro.Equal });
            }

            if (idCheque != null)
            {
                asignacion.IdCheque = (int)idCheque;
                opciones.Add(new Filtro() { Columna = NombresColumnas.IdCheque, Tipo = TipoFiltro.Equal });
            }

            DALMagiPack<ChequeMovimiento> dal = new DALMagiPack<ChequeMovimiento>();
            return dal.Traer(asignacion, opciones);
        }
    }
}
